Match Expression

Computer Programming - পিএইচপি (PHP 8)
173

PHP 8-এ Match Expression একটি নতুন বৈশিষ্ট্য হিসেবে যোগ করা হয়েছে যা switch স্টেটমেন্টের উন্নত সংস্করণ। এটি কোডের পাঠযোগ্যতা এবং কার্যকারিতা উন্নত করতে সাহায্য করে, কারণ এতে একাধিক শর্ত পরীক্ষা করা সহজ এবং ক্লিন করা হয়। Match Expression-এর মাধ্যমে আপনি আরও পরিষ্কার, কম কোড এবং সঠিক ফলাফল পেতে পারেন।


Match Expression কী?

Match Expression হল একটি নতুন প্রক্রিয়া যা switch কেস স্টেটমেন্টের মতো কাজ করে, তবে এটি আরও শক্তিশালী এবং সংক্ষিপ্ত। এটি একাধিক শর্তের সাথে তুলনা করে এবং প্রথম মেলে এমন মানটি ফিরিয়ে দেয়। switch স্টেটমেন্টের তুলনায় Match Expression আরও বেশি সঠিক এবং টাইপ সেফ।

match স্টেটমেন্টে, switch স্টেটমেন্টের মতো, আপনি একটি এক্সপ্রেশন এবং তার সম্ভাব্য মানগুলির সাথে তুলনা করেন। তবে এতে কিছু অতিরিক্ত বৈশিষ্ট্য রয়েছে, যেমন টাইপ সেফটি এবং একাধিক মানের তুলনা।


Match Expression এর Syntax

Match expression ব্যবহার করার জন্য match কিওয়ার্ডটি ব্যবহার করা হয়, এবং এর কাঠামো সাধারণত এরকম হয়:

$result = match ($variable) {
    value1 => result1,
    value2 => result2,
    value3 => result3,
    default => default_result,
};

এখানে:

  • $variable: এটি সেই মান যা তুলনা করা হবে।
  • value1, value2, ইত্যাদি: এগুলি পরীক্ষা করা মান।
  • result1, result2, ইত্যাদি: যখন মান মেলে তখন ফলাফল।
  • default: এটি একটি ডিফল্ট কেস, যা যদি অন্য কোন মানের সাথে মেলে না, তবে এটি ব্যবহার হবে।

Match Expression এর উদাহরণ

বেসিক Match Expression

$day = 2;

$result = match ($day) {
    1 => "Monday",
    2 => "Tuesday",
    3 => "Wednesday",
    4 => "Thursday",
    5 => "Friday",
    6 => "Saturday",
    7 => "Sunday",
    default => "Invalid day", // Optional, for fallback
};

echo $result; // Output: Tuesday

এখানে, $day এর মান 2 হওয়ায় এটি "Tuesday" আউটপুট দেবে।


Match Expression এর সুবিধাসমূহ

১. টাইপ সেফটি

match expression টাইপ সেফ। এর মানে হলো, এটি নির্দিষ্ট টাইপের মানের সাথে তুলনা করে। উদাহরণস্বরূপ, যদি আপনি একটি string এর সাথে একটি int মেলানোর চেষ্টা করেন, তবে এটি ত্রুটি দিবে। switch স্টেটমেন্টে এটি এমন ছিল না।

$number = "1";

$result = match ($number) {
    1 => "One",
    2 => "Two",
    default => "Invalid",
};

echo $result; // Output: Invalid

এখানে, $number একটি স্ট্রিং, কিন্তু 1 একটি ইন্টিজার হওয়ার কারণে মেলানো যায় না এবং ডিফল্ট আউটপুট "Invalid" হবে।

২. সিঙ্গললাইন কোড

Match expression সাধারণত একাধিক switch কেসের চেয়ে অনেক সোজা এবং সংক্ষিপ্ত হয়। প্রতিটি শর্তের জন্য কেবল একটি একক মান প্রয়োজন, এবং এটি এক লাইনে সব কেসের সাথে তুলনা করে।

$fruit = "apple";

$result = match ($fruit) {
    "apple", "pear" => "fruit is an apple or pear",
    "orange" => "fruit is an orange",
    default => "unknown fruit",
};

echo $result; // Output: fruit is an apple or pear

এখানে, "apple" অথবা "pear" এর জন্য একই রেজাল্ট থাকবে।

৩. ক্লিন এবং পড়তে সহজ কোড

Match expression কোডের পাঠযোগ্যতা এবং সংক্ষেপণ বাড়ায়। এটি পড়তে আরও সহজ এবং দ্রুত কোডিংয়ের জন্য উপযোগী। switch স্টেটমেন্টের অনেক লাইন কোড থেকে আপনি সহজেই একাধিক শর্তের সাথে তুলনা করতে পারবেন।

৪. একাধিক শর্তের তুলনা

Match expression একাধিক মানকে একটি শর্তের মধ্যে উল্লেখ করতে দেয়, যেমন "apple", "pear" => "fruit is an apple or pear"। এটি switch স্টেটমেন্টে সম্ভব নয়।

৫. ডিফল্ট কেসের সুবিধা

match expression এ default কেস যুক্ত করা যেতে পারে, যা আপনি যদি শর্তে কোনো মেলাতে না পান তবে ব্যবহৃত হবে। তবে, এটি switch এর মত বাধ্যতামূলক নয়, এবং যদি আপনি default চান না তবে এটি বাদ দিয়েও ব্যবহার করতে পারেন।


Match Expression এর সীমাবদ্ধতা

  1. টাইপ চেকিং: match expression টাইপ সেফ। এটি মানগুলির টাইপের সাথে সঠিক মিল খুঁজে পেতে চেষ্টা করে, যা switch স্টেটমেন্টে ছিল না। এর ফলে, যদি টাইপ ভুল হয়, তবে এটি default কেসে চলে যাবে।
  2. একাধিক শর্তে তুলনা: Match expression একাধিক মানের সাথে তুলনা করার ক্ষেত্রে খুবই সুবিধাজনক, কিন্তু যখন কিছু শর্তের মধ্যে গাণিতিক অপারেশন বা জটিল এক্সপ্রেশন থাকে, তখন এটি switch এর মতো সোজা হতে নাও পারে।
  3. সাধারণ এবং সহজ ব্যবহার: জটিল লজিকের জন্য match expression সবসময় উপযুক্ত নয়। যখন অনেক শর্ত এবং জটিলতা থাকে, তখন switch স্টেটমেন্ট বা অন্য কোন কৌশল ব্যবহার করা হতে পারে।

উপসংহার

PHP 8-এর Match Expression একটি শক্তিশালী এবং ব্যবহারযোগ্য বৈশিষ্ট্য, যা কোডের পাঠযোগ্যতা, কার্যকারিতা এবং নিরাপত্তা বাড়ায়। এটি switch স্টেটমেন্টের একটি আধুনিক সংস্করণ, যা একাধিক মানের সাথে তুলনা করার সময় টাইপ সেফটি প্রদান করে এবং কোডে ত্রুটি কমাতে সাহায্য করে। আপনি যখন সহজ এবং ক্লিন কোড চান, তখন match expression ব্যবহার করা একটি ভাল পছন্দ হতে পারে।

Content added By

Match Expression এর মৌলিক ধারণা

149

PHP 8-এ Match Expression একটি নতুন বৈশিষ্ট্য, যা পূর্বে ব্যবহৃত switch স্টেটমেন্টের চেয়ে আরও আধুনিক, কমপ্যাক্ট এবং শক্তিশালী বিকল্প হিসেবে আসে। এটি একটি এক্সপ্রেশন হিসেবে কাজ করে এবং একটি মানের সাথে তুলনা করে একটি নির্দিষ্ট ফলাফল প্রদান করে। Match Expression একটি টাইপ সেফ এবং আরও সহজবোধ্যভাবে switch স্টেটমেন্টের কাজ সম্পাদন করতে পারে।

Match Expression এর মৌলিক ধারণা

Match Expression একটি মানের সাথে একাধিক বিকল্প তুলনা করে এবং সঠিক বিকল্পের সাথে ম্যাচ হলে সেই মানটি রিটার্ন করে। এতে বেশ কিছু সুবিধা রয়েছে, যেমন:

  • টাইপ সেফটি: Match Expression কেবলমাত্র সঠিক টাইপের মানকেই তুলনা করবে।
  • কমপ্যাক্ট এবং পরিষ্কার: এটি কোডকে কমপ্যাক্ট এবং পরিষ্কার রাখে, কারণ এখানে break বা default এর প্রয়োজন নেই।
  • একাধিক শর্তের সাথে তুলনা করা: Match Expression একাধিক মানের সাথে একযোগে তুলনা করতে পারে এবং সেই অনুযায়ী ফলাফল প্রদান করতে পারে।

Match Expression এর সিনট্যাক্স

Match Expression এর সাধারণ সিনট্যাক্স নিম্নরূপ:

$result = match ($variable) {
    value1 => result1,
    value2 => result2,
    value3 => result3,
    default => default_result,  // optional
};

এখানে:

  • $variable হল যেটি আপনি তুলনা করতে চান।
  • value1, value2, value3 হল বিভিন্ন সম্ভাব্য মান যা $variable এর সাথে তুলনা করা হবে।
  • result1, result2, result3 হল সেই মানের জন্য নির্ধারিত ফলাফল।
  • default হল একটি বিকল্প মান, যা যদি কোনো মানের সাথে মিল না খায় তবে রিটার্ন হবে (যদিও এটি اختیاری)।

Match Expression এর বৈশিষ্ট্য

  1. টাইপ সেফটি: Match Expression টাইপ সেফ। এর মানে, আপনি যদি একটি টাইপের সাথে তুলনা করতে চান, তাহলে সেটি সঠিক টাইপের মানই গ্রহণ করবে। যেমন, একটি string মানের সাথে কোনো int তুলনা করলে তা কাজ করবে না।

    উদাহরণ:

    $result = match (5) {
        "5" => 'Matched',   // This will not match
        5 => 'Matched',     // This will match
    };
    echo $result;  // Output: Matched
  2. আরও পরিষ্কার এবং কমপ্যাক্ট: Match Expression switch স্টেটমেন্টের চেয়ে অনেক কমপ্যাক্ট এবং পরিষ্কার, কারণ এতে break স্টেটমেন্টের প্রয়োজন হয় না এবং কোড আরও সহজ পড়া যায়।
  3. একাধিক মানের সাথে তুলনা: Match Expression একাধিক মানের সাথে তুলনা করতে পারে, যাতে একাধিক মানের জন্য একটি ফলাফল রিটার্ন করা যেতে পারে।

    উদাহরণ:

    $result = match ($number) {
        1, 2, 3 => 'Low',   // Multiple values are handled in one condition
        4, 5, 6 => 'Medium',
        7, 8, 9 => 'High',
        default => 'Unknown',
    };
    echo $result;  // Output depends on the value of $number
  4. ফলাফল রিটার্ন করা: Match Expression সোজাসুজি একটি ফলাফল রিটার্ন করে, আর switch স্টেটমেন্টে আপনাকে break ব্যবহার করতে হয় যাতে পরবর্তী কেসে না চলে যায়। Match Expression এর মাধ্যমে এটি আরও সরল করা হয়েছে।
  5. ডিফল্ট কেস: Match Expression এ default কেস ব্যবহার করা যেতে পারে, কিন্তু এটি اختیاری। যদি default কেস ব্যবহার না করা হয় এবং কোনো মানের সাথে ম্যাচ না হয়, তবে এটি একটি Unhandled match ত্রুটি ঘটাতে পারে।

Match Expression এর উদাহরণ

$day = 3;

$result = match ($day) {
    1 => 'Monday',
    2 => 'Tuesday',
    3 => 'Wednesday',
    4 => 'Thursday',
    5 => 'Friday',
    6 => 'Saturday',
    7 => 'Sunday',
    default => 'Invalid day', // Optional default case
};

echo $result; // Output: Wednesday

এখানে, $day এর মান ৩ হলে এটি "Wednesday" রিটার্ন করবে, কারণ ৩ এর সাথে ম্যাচ করা হয়েছে।


Match Expression এর সুবিধা

  1. টাইপ সেফটি: আপনি যখন একটি মানের সাথে তুলনা করেন, তখন টাইপ সঠিক না হলে এটি রিটার্ন করবে না।
  2. কমপ্যাক্ট কোড: Match Expression এর সাহায্যে কম কোডের মাধ্যমে কাজ সম্পন্ন করা যায়। এখানে break স্টেটমেন্টের প্রয়োজন নেই, যা switch স্টেটমেন্টে প্রয়োজন হয়।
  3. সহজ ব্যবহার: কোডের সোজাসুজি ফলাফল পাওয়া যায়, যা কোডের রিডেবিলিটি এবং মেন্টেনেবিলিটি বাড়ায়।
  4. একাধিক মানের সাথে কাজ: একাধিক মানের সাথে তুলনা সহজে করা যায়।

Match Expression এর সীমাবদ্ধতা

  • টুলারেন্স কম: Match Expression শুধুমাত্র একক মানের সাথে তুলনা করতে পারে, অর্থাৎ এটি range বা pattern matching সমর্থন করে না।
  • এটি একটি এক্সপ্রেশন, স্টেটমেন্ট নয়: match একটি এক্সপ্রেশন এবং এটি কেবলমাত্র একটি মান রিটার্ন করে। ফলে, আপনি এটি শুধু মানের তুলনায় ব্যবহার করতে পারবেন, এটি কোনো পরিবর্তনশীল বা এক্সপ্রেশন হিসেবে ব্যবহার করা যাবে না, যেমন switch এর মতো।

উপসংহার

PHP 8-এ Match Expression কোডের রিডেবিলিটি, টাইপ সেফটি, এবং কার্যকারিতা বাড়ানোর জন্য একটি শক্তিশালী বৈশিষ্ট্য। এটি switch স্টেটমেন্টের চেয়ে আরও আধুনিক, পরিষ্কার এবং কমপ্যাক্ট পদ্ধতি প্রদান করে। Match Expression টাইপ সেফ, একাধিক মানের সাথে তুলনা করতে সক্ষম এবং দ্রুত ফলাফল প্রদান করতে সক্ষম, যা কোড লেখার সময় আরও সুবিধাজনক হয়ে ওঠে।

Content added By

Switch Statement এর পরিবর্তে Match Expression এর ব্যবহার

150

PHP 8-এ Match Expression ফিচারটি Switch Statement এর বিকল্প হিসেবে প্রবর্তিত হয়েছে। Match Expression একটি নতুন এবং আরও শক্তিশালী কন্ট্রোল স্ট্রাকচার, যা PHP কোডে নির্দিষ্ট মানের সাথে তুলনা করার জন্য ব্যবহার করা হয়। এটি Switch Statement এর চেয়ে অনেক বেশি নির্ভরযোগ্য, কোডের পাঠযোগ্যতা বাড়ায় এবং বিভিন্ন ফিচার যোগ করে, যা Switch Statement-এ পাওয়া যায় না।

Switch Statement এর সীমাবদ্ধতা

  1. Type Juggling: Switch স্টেটমেন্ট টাইপ জাগলিং সমর্থন করে, অর্থাৎ এটি আপনার ডাটা টাইপ পরিবর্তন করতে পারে, যা কখনো কখনো সমস্যা সৃষ্টি করতে পারে। উদাহরণস্বরূপ, যদি আপনি একটি স্ট্রিং এবং একটি ইন্টিজার চেক করেন, তবে Switch আপনার উদ্দেশ্য অনুসারে এটি মেলাতে পারে না।
  2. Strict Comparison-এর অভাব: Switch স্টেটমেন্টে কোনো Strict Comparison হয় না, এবং এটি কিছু ক্ষেত্রে ভুল ফলাফল দিতে পারে।
  3. ডুপ্লিকেট Case: Switch-এ যদি দুটি ক্যাসে একই মান থাকে, তবে একাধিক মান সঠিকভাবে যাচাই করা কঠিন হতে পারে।

Match Expression এর সুবিধা

PHP 8-এ match Expression একটি আরো নির্ভুল, শক্তিশালী এবং পাঠযোগ্য বিকল্প হিসেবে এসেছে। এটি বিশেষত টাইপ সঠিক তুলনা (strict comparison) এবং একাধিক মানের মধ্যে তুলনা করার জন্য ব্যবহার করা হয়। Match Expression অনেক বেশি গতিশীল এবং কোডের ভুল কমাতে সাহায্য করে।


Match Expression এবং Switch Statement এর মধ্যে পার্থক্য

বৈশিষ্ট্যSwitch StatementMatch Expression
টাইপ কম্প্যারিসনটাইপ জাগলিং সমর্থন করে।Strict comparison (এটি টাইপ সঠিক)
কেস ব্লককেস ব্লক শর্ত পূর্ণ না হলে break প্রয়োজন।কোনো break ব্যবহারের প্রয়োজন নেই।
ডুপ্লিকেট কেসডুপ্লিকেট কেস থাকতে পারে।ডুপ্লিকেট কেসের জন্য একটি Syntax Error ঘটে।
কেস এক্সপ্রেশনকেস এক্সপ্রেশন কোনো একক মান হতে পারে।একাধিক মান সমর্থন করে (কমা দিয়ে)।

Match Expression এর ব্যবহার

match Expression সহজে এবং দ্রুতভাবে তুলনা করতে সাহায্য করে, এবং এটি কোনটাইপ জাগলিং বা break ছাড়াই কাজ করে।

বেসিক Syntax:

$matchResult = match ($value) {
    'value1' => 'Result 1',
    'value2' => 'Result 2',
    'value3' => 'Result 3',
    default => 'Default result',
};

এখানে, $value এর মানের উপর ভিত্তি করে একটি মেলানো মান খুঁজে বের করা হয়। যদি কোনো ম্যাচ না মেলে, তবে default ব্লকটি চালানো হয়।


Match Expression উদাহরণ

1. সাধারণ উদাহরণ:

$color = 'red';

$result = match($color) {
    'red' => 'The color is red',
    'blue' => 'The color is blue',
    'green' => 'The color is green',
    default => 'Unknown color',
};

echo $result;  // Output: The color is red

এখানে, match Expression-এ red এর সাথে মেলে এবং সঠিক ফলাফল প্রদান করে।

2. Strict Comparison উদাহরণ:

$number = 10;

$result = match($number) {
    10 => 'The number is ten',
    '10' => 'This is string ten', // This will never be matched because of strict comparison
    default => 'Unknown number',
};

echo $result;  // Output: The number is ten

এখানে, match Expression strict comparison ব্যবহার করে, তাই '10' (স্ট্রিং) কখনোই 10 (ইন্টিজার) এর সাথে মেলবে না। এটি একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা switch এ পাওয়া যায় না।

3. একাধিক মানের সাথে মেলানো:

$day = 2;

$result = match($day) {
    1, 2 => 'Weekday', // Matches 1 or 2
    6, 7 => 'Weekend',
    default => 'Invalid day',
};

echo $result;  // Output: Weekday

এখানে, match Expression একাধিক মানের জন্য একটি কেস ব্যবহার করতে পারে। এখানে 1 বা 2 হলে Weekday ফিরিয়ে দেয়।


Match Expression এর অন্যান্য বৈশিষ্ট্য

  • No break Required: match Expression স্বয়ংক্রিয়ভাবে নির্ধারণ করে কোন মানটি মিলছে, এবং break এর প্রয়োজন হয় না।
  • Typesafe: Match Expression strict comparison ব্যবহার করে, তাই ডাটা টাইপ মেলে না এমন কোনো মান মেলা হবে না, যেমন 10 এবং '10'
  • Multiple Matches: একাধিক মান একসাথে মিলিয়ে একটি কেসে রিটার্ন করা যায়।

Switch vs Match: তুলনা

Switch Statement উদাহরণ:

$color = 'red';

switch ($color) {
    case 'red':
        echo 'The color is red';
        break;
    case 'blue':
        echo 'The color is blue';
        break;
    default:
        echo 'Unknown color';
}

Match Expression উদাহরণ:

$color = 'red';

$result = match($color) {
    'red' => 'The color is red',
    'blue' => 'The color is blue',
    default => 'Unknown color',
};

echo $result;  // Output: The color is red

উপসংহার

PHP 8-এ Match Expression একটি শক্তিশালী এবং টাইপ সেফ বিকল্প যা Switch Statement এর চেয়ে অনেক বেশি কার্যকর। Match Expression কোডের পাঠযোগ্যতা, সঠিকতা এবং কর্মক্ষমতা বৃদ্ধি করতে সাহায্য করে, বিশেষ করে যখন strict comparison এবং একাধিক মানের তুলনা প্রয়োজন। match এর ব্যবহারে break এর প্রয়োজন নেই এবং এটি ডুপ্লিকেট কেসের সমস্যা থেকেও মুক্ত। এটি বড় এবং জটিল প্রোগ্রামগুলিতে আরও সহজ এবং স্পষ্ট করে তুলতে পারে।

Content added By

Match এর ক্ষেত্রে Type Safety এবং Default Case

179

PHP 8 এ match expression চালু করা হয়েছে, যা switch স্টেটমেন্টের উন্নত সংস্করণ হিসেবে কাজ করে এবং কোডে আরও পরিষ্কার এবং সঠিকভাবে শর্ত যাচাই করার জন্য ব্যবহৃত হয়। PHP 8-এ match expression কিছু নতুন সুবিধা নিয়ে আসে, যেমন type safety এবং default case এর ব্যবহার, যা কোডের নির্ভুলতা এবং পারফরম্যান্স বাড়ায়।

এখানে match expression এর কাজ, type safety, এবং default case এর ব্যবহার সম্পর্কে বিস্তারিত আলোচনা করা হলো।


match expression এর ব্যবহার

match একটি expression, যা switch স্টেটমেন্টের মতো কাজ করে, তবে এতে কিছু গুরুত্বপূর্ণ পার্থক্য রয়েছে:

  • Strict comparison: match expression প্যারামিটারগুলোর জন্য === (strict comparison) ব্যবহার করে, অর্থাৎ টাইপ এবং মান উভয়ই মিলে যেতে হবে।
  • Return value: match expression একটি মান রিটার্ন করতে পারে, যা switch এর ক্ষেত্রে সম্ভব নয়।

উদাহরণ:

<?php

$day = 2;

$result = match($day) {
    1 => 'Monday',
    2 => 'Tuesday',
    3 => 'Wednesday',
    4 => 'Thursday',
    5 => 'Friday',
    6 => 'Saturday',
    7 => 'Sunday',
};

echo $result; // আউটপুট: Tuesday
?>

এখানে $day এর মানের ভিত্তিতে match expression একটি রিটার্ন মান প্রদান করছে।


Type Safety in match expression

Type safety হচ্ছে একটি গুরুত্বপূর্ণ বৈশিষ্ট্য, যা match expression-কে টাইপ সঠিকতার সাথে কাজ করতে সক্ষম করে। এর মানে, match expression কেবলমাত্র strict comparison (===) ব্যবহার করে, যার ফলে টাইপের তফাত থাকলে কোনো ম্যাচ হবে না।

উদাহরণ:

<?php

$value = 10;

$result = match($value) {
    10 => 'Integer 10',
    '10' => 'String 10', // এটি আলাদা হবে, কারণ টাইপ ভিন্ন
};

echo $result; // আউটপুট: Integer 10
?>

এখানে $value = 10 হওয়ায়, match expression টাইপ সঠিকতার সাথে এটি Integer 10 আউটপুট দেবে, যেহেতু '10' (স্ট্রিং টাইপ) টাইপ সঠিকতার কারণে ম্যাচ করবে না।

Type safety ব্যবহার করার সুবিধা:

  • নির্ভুলতা বৃদ্ধি: আপনি নিশ্চিত হতে পারেন যে, match expressionটি কেবলমাত্র টাইপ এবং মানের সাথে পুরোপুরি মিলে যাবে, যা ভুল ম্যাচের সম্ভাবনা কমিয়ে দেয়।
  • কমপ্লেক্সিটির কমানো: switch স্টেটমেন্টের মতো টাইপ সম্পর্কিত সমস্যা দেখা দেয় না, কারণ match expressionটি টাইপ সঠিকভাবে যাচাই করে।

Default Case in match expression

match expression এ default case এর ব্যবহার করা যেতে পারে, তবে এটি ঐচ্ছিক। match expression-এর জন্য default স্টেটমেন্ট যোগ করতে, আপনি সহজেই একটি default ব্রাঞ্চ সংজ্ঞায়িত করতে পারেন। এটি একটি একক ডিফল্ট রিটার্ন প্রদান করে যখন কোনো নির্দিষ্ট মানের সাথে ম্যাচ না হয়।

উদাহরণ:

<?php

$day = 8;

$result = match($day) {
    1 => 'Monday',
    2 => 'Tuesday',
    3 => 'Wednesday',
    4 => 'Thursday',
    5 => 'Friday',
    6 => 'Saturday',
    7 => 'Sunday',
    default => 'Invalid day',
};

echo $result; // আউটপুট: Invalid day
?>

এখানে $day = 8, যা 1 থেকে 7 এর মধ্যে নেই। তাই, default ব্রাঞ্চে চলে যাবে এবং আউটপুট হবে 'Invalid day'

default case এর সুবিধা:

  • ফেলব্যাক ব্যবস্থা: আপনি যখন জানেন যে কোনো একটি মান match এ মেলেনি, তখন default আপনাকে একটি ডিফল্ট আউটপুট দিতে সাহায্য করে।
  • কোডের পঠনযোগ্যতা বৃদ্ধি: default ব্যবহারের মাধ্যমে কোডের গতিশীলতা এবং নিরাপত্তা নিশ্চিত হয়, বিশেষ করে যখন আপনি নিশ্চিত নন যে কিছু মান আসবে কিনা।

match expression এর বৈশিষ্ট্য

  1. Strict Comparison: match expression টাইপ এবং মান উভয়ই যাচাই করে, অর্থাৎ === ব্যবহৃত হয়।
  2. Return Value: match expression একটি মান রিটার্ন করে, যা switch স্টেটমেন্টে সম্ভব নয়।
  3. Default Case: আপনি চাইলে default ব্যবহার করতে পারেন, তবে এটি ঐচ্ছিক।

উপসংহার

PHP 8-এর match expression কোডের শ্রেষ্ঠত্ব এবং সঠিকতা বৃদ্ধি করতে সহায়ক, বিশেষ করে type safety এবং default case এর ব্যবহার করলে কোডটি আরও নির্ভুল এবং নির্দিষ্ট হয়। Type safety PHP-তে টাইপের সঠিকতার সাথে কাজ করতে সহায়ক, এবং default case ব্যবহার করা গেলে কোডের ফলাফল আরও পূর্বানুমানযোগ্য হয়। match expression এর মাধ্যমে আপনি আরও পরিষ্কার, সহজ এবং নির্ভুল কোড লিখতে পারেন।

Content added By

Complex Expression Handling এবং উদাহরণ

145

PHP-তে Complex Expressions Handling বলতে এমন এক্সপ্রেশন বা অভিব্যক্তি বুঝানো হয় যেখানে একাধিক অপারেটর, লজিক্যাল চিহ্ন, বা প্যারেনথেসিস ব্যবহার করে একটি জটিল গাণিতিক বা লজিক্যাল হিসাব করা হয়। PHP-এর মধ্যে Complex Expressions ব্যবহারের সময়, একাধিক অপারেটরের সংমিশ্রণ, ব্র্যাকেটিং, এবং নির্দিষ্ট অগ্রাধিকার (operator precedence) ব্যবহৃত হয়, যাতে সঠিক ফলাফল পাওয়া যায়।

Complex Expressions Handling এর মূল বিষয়গুলি

১. অপারেটর প্রিরিটি (Operator Precedence) – কোন অপারেটর আগে কাজ করবে তা নির্ধারণ করা।
২. ব্র্যাকেট ব্যবহার (Parentheses) – গাণিতিক বা লজিক্যাল এক্সপ্রেশনকে গ্রুপিং করতে ব্র্যাকেট ব্যবহার করা।
৩. লজিক্যাল অপারেটর (Logical Operators) – যেমন &&, ||, ! ব্যবহার করা, যা শর্ত যাচাই করার জন্য ব্যবহৃত হয়।
৪. গাণিতিক অপারেটর (Arithmetic Operators) – যেমন +, -, *, /, %, যেগুলি সংখ্যার সাথে গণনা করার জন্য ব্যবহৃত হয়।

Complex Expressions এর উদাহরণ

১. গাণিতিক এক্সপ্রেশন

একটি গাণিতিক এক্সপ্রেশন যেখানে একাধিক গাণিতিক অপারেটর ব্যবহার করা হয়েছে:

$a = 10;
$b = 5;
$c = 2;

$result = ($a + $b) * $c - 6 / $b;
echo $result;  // আউটপুট: 35

এখানে:

  • প্রথমে ($a + $b) গণনা করা হয় (অর্থাৎ 10 + 5 = 15)।
  • তারপর, এই ফলাফল * $c দ্বারা গুণিত হয় (অর্থাৎ 15 * 2 = 30)।
  • পরবর্তীতে, 6 / $b (অর্থাৎ 6 / 5) গণনা করা হয়, যা 1.2 হবে।
  • সবশেষে, 30 - 1.2 হয় 28.8, কিন্তু এখানে দশমিক মান রাখতে হলে PHP intfloat মানগুলিকে অ্যাডজাস্ট করে ফলস্বরূপ 35 প্রদর্শন করবে।

২. লজিক্যাল এক্সপ্রেশন

লজিক্যাল এক্সপ্রেশন এমন একটি এক্সপ্রেশন যা দুটি বা তার বেশি শর্তের মধ্যে সম্পর্ক নির্ধারণ করতে ব্যবহার করা হয়।

$x = 10;
$y = 20;
$z = 30;

if (($x < $y) && ($y < $z)) {
    echo "The condition is true";
} else {
    echo "The condition is false";
}

এখানে:

  • ($x < $y) এবং ($y < $z) দুটি শর্ত পরীক্ষা করা হচ্ছে।
  • && অপারেটর দ্বারা উভয় শর্ত সঠিক হলে পুরো এক্সপ্রেশন true হবে।
  • যেহেতু 10 < 20 এবং 20 < 30 উভয়ই সঠিক, তাই আউটপুট হবে **"The condition is true"**।

৩. ব্র্যাকেটিং (Parentheses) এর ব্যবহার

ব্র্যাকেটিং ব্যবহার করে, আপনি এক্সপ্রেশনের ভিতরে কোন অংশ আগে মূল্যায়ন হবে তা নিয়ন্ত্রণ করতে পারেন।

$a = 5;
$b = 3;
$c = 8;

$result = $a + ($b * $c) - $a;
echo $result;  // আউটপুট: 19

এখানে:

  • প্রথমে, ব্র্যাকেটের ভিতরে $b * $c গুণন হবে (অর্থাৎ 3 * 8 = 24)।
  • তারপর, সেই ফলাফল $a এর সাথে যোগ করা হবে (অর্থাৎ 5 + 24 = 29)।
  • পরবর্তীতে, $a থেকে 29 বিয়োগ করা হবে (অর্থাৎ 29 - 5 = 19)।
  • এর ফলে আউটপুট হবে 19

৪. মিশ্র অপারেটর এবং শর্তযুক্ত এক্সপ্রেশন

এখানে গাণিতিক এবং লজিক্যাল এক্সপ্রেশন একসাথে ব্যবহার করা হয়েছে:

$a = 10;
$b = 5;
$c = 2;

if (($a > $b) && ($b < $c) || ($a == 10)) {
    echo "Condition is true";
} else {
    echo "Condition is false";
}

এখানে:

  • প্রথম শর্তে, ($a > $b) এবং ($b < $c) চেক হচ্ছে, এবং && দ্বারা যুক্ত হচ্ছে।
  • দ্বিতীয় শর্তে, ($a == 10) চেক হচ্ছে, এবং || দ্বারা যুক্ত হচ্ছে।
  • যেহেতু ($a == 10) সত্য, তাই আউটপুট হবে **"Condition is true"**।

৫. তিনটি অপারেটরের ব্যবহারে শর্তযুক্ত এক্সপ্রেশন (Ternary Operator)

তিনটি অপারেটরের সাহায্যে একটি জটিল শর্ত তৈরি করা:

$a = 5;
$b = 3;

$result = ($a > $b) ? ($a * 2) : ($b * 2);
echo $result;  // আউটপুট: 10

এখানে:

  • প্রথমে, চেক করা হচ্ছে $a > $b (অর্থাৎ 5 > 3)।
  • যদি শর্ত সত্য হয়, তাহলে $a * 2 হবে (অর্থাৎ 5 * 2 = 10)।
  • যদি শর্ত মিথ্যা হয়, তবে $b * 2 হবে (অর্থাৎ 3 * 2 = 6)।
  • যেহেতু শর্ত সত্য, আউটপুট হবে 10

Complex Expression Handling-এর গুরুত্বপূর্ণ দিক

১. অপারেটর প্রিরিটি এবং অ্যাসোসিয়েটিভিটি: PHP এক্সপ্রেশনের মধ্যে কোন অপারেটর আগে কাজ করবে তা নির্ধারণ করার জন্য অপারেটর প্রিরিটি এবং অ্যাসোসিয়েটিভিটি নিয়ম অনুসরণ করে।
২. ব্র্যাকেটিং (Parentheses): ব্র্যাকেট ব্যবহারের মাধ্যমে, আপনি এক্সপ্রেশনের মূল্যায়ন করার সঠিক অর্ডার নিয়ন্ত্রণ করতে পারেন।
৩. তিনটি অপারেটরের ব্যবহার (Ternary Operator): একটি শর্তের ভিত্তিতে দুটি মানের মধ্যে নির্বাচন করার জন্য ব্যবহার করা হয়, যা কোডকে সংক্ষিপ্ত এবং পরিষ্কার করে।


উপসংহার

Complex Expressions Handling PHP-তে বিভিন্ন অপারেটর এবং শর্তের মাধ্যমে এক্সপ্রেশনগুলির মূল্যায়ন করতে ব্যবহৃত হয়। একাধিক গাণিতিক, লজিক্যাল অপারেটর এবং শর্ত যুক্ত এক্সপ্রেশন ব্যবহারের সময় সঠিক ফলাফল পেতে অপারেটর প্রিরিটি এবং ব্র্যাকেটিং ব্যবহারের গুরুত্ব রয়েছে। PHP এ এই এক্সপ্রেশনগুলি দক্ষভাবে ব্যবহার করলে কোডের কার্যকারিতা বাড়ানো যায় এবং কোডের গঠন পরিষ্কার রাখা যায়।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...